With the advancements in computing technology and the prevalence of computing devices, the usage of integrated circuits, referred to as a system on a chip or system on chip (SoC), are commonly used. The SoC integrates most components of a computer, or another electronic system or electronic device, into a single chip. For example, a SoC might contain digital functions, analog functions, mixed-signal functions, radio-frequency functions, and so on, on single chip substrate. In an example, an application for a SoC is in the area of embedded systems.
In some systems with multiple agents, where several agents generate service requests that are to be processed by one service agent, in order to ensure that a service agent has storage space available to store incoming requests, storage slot (referred to simply as “slots”) availability is provided to requesting agents. Credits or tokens are issued to requesting agents that might be connected with each other and the service agent in a ring topology (e.g., token ring). When the tokens are injected into the token ring by the service agent, the tokens are injected at the same requesting agent each time and, further, the tokens are active when injected into the token ring. Thus, the tokens can be consumed by agents that are located at the beginning of the token ring and agents located near the end of the token ring might rarely have the opportunity to obtain tokens.
Further, some systems use a hard partitioning scheme for the slots. For example, the slots are divided evenly between high priority, medium priority, and low priority requests. However, this is an inefficient use of resources because the low priority requests are more numerous than the higher priority requests and, therefore, the low priority requests might take over all the available slots. Since the slots are quickly filed with low priority requests, the availability of slots for high priority requests can be severely limited.
The above-described deficiencies of conventional approaches to flow control are merely intended to provide an overview of some of the problems of conventional approaches and techniques, and are not intended to be exhaustive. Other problems with conventional systems and techniques, and corresponding benefits of the various non-limiting embodiments described herein may become further apparent upon review of the following description.